{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# ARIMA_SVM组合预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 写在前面："
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这是我的第二篇notebook，确实也渐渐喜欢上用它来记录代码了。之前为了练写作用英语写了一篇kaggle的houseprice解题过程，这一篇决定用中文把我的毕设论文记录下来，虽然毕设的方向的实际价值很小，但还是想把它写下来，毕竟也是用心特地自己写了代码求解问题的，而且在相关的问题上也有了新的见闻和想法。\n",
    "\n",
    "这一篇文章主要研究的是某一个时期的黄金价格并预测，至于为什么研究黄金，也是我根据自己的喜好随便选的，自己更感兴趣的是研究的方法。因此，这毕竟是毕业论文，对于我不完全了解的更深入的机器学习算法还是不要碰太多为好。\n",
    "\n",
    "另外，在写论文的过程中，我也发现在时间序列ARIMA的模型上，用eviews来处理可能更合适，因为可以更快更方便的看到结果；我在前期也尝试过用python来构建arima模型，发现过程比较繁琐，而且统计指标也不够全面。也可能那时我还不是很熟悉statsmodels库，以至于每一次调用都要去查资料。不过在这一个notebook中，我还是尽量用python代码来还原我的预测过程。\n",
    "\n",
    "最后，由于本文与上一篇一样主要是分享自己写论文过程中真实的感悟，所以有一些口语化的语言并且排版也没有那么工整，希望读者适应。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 一.需要用到的库"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from math import sqrt\n",
    "import matplotlib.pyplot as plt\n",
    "import statsmodels.api as sm\n",
    "from statsmodels.graphics.tsaplots import plot_acf\n",
    "from statsmodels.graphics.tsaplots import plot_pacf\n",
    "from statsmodels.tsa.stattools import adfuller as ADF\n",
    "from statsmodels.stats.diagnostic import acorr_ljungbox\n",
    "from statsmodels.graphics.api import qqplot\n",
    "from sklearn.svm import SVR\n",
    "from sklearn.cross_validation import train_test_split\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.cross_validation import cross_val_score\n",
    "from bayes_opt import BayesianOptimization"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 二.读取数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "本文数据主要来自国外的一个[网站](#https://fred.stlouisfed.org),这是美国圣路易斯联邦储备银行官方网站的数据库(找了半天才找到，不知道有没有更好的数据库网站)。选取的数据是2017年到2018年的每周黄金平均价格。当然，我也尝试过其他区间的数据，但是得到的预测结果总是显示R平方值不理想，这里也印证了仅仅根据过去的时间序列数据来预测未来并不可靠的想法，还是要利用多元数据来分析的，但是既然是毕业论文，当然就不去想这么多实际情况了。\n",
    "\n",
    "先来看看数据的情况吧："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "data=pd.read_csv('gold1718w1.csv',index_col=0,parse_dates=True)\n",
    "data.rename(columns={'GOLDPMGBD228NLBM':'Gold price'},inplace=True)\n",
    "data['Gold price']=data['Gold price'].astype('float64')\n",
    "#data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "需要注意的是，为了防止差分或者残差定阶的时候出现缺失数据的问题，我们将多读取几个时期的数据以防万一，实际在建模时我们用到的数据区间为2017年1月6日到2018年1月5日，因此接下来将对数据做一个切分。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "test=np.array(data[-5:])\n",
    "train=data[6:len(data)-5]\n",
    "#train"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "看一下需要分析的数据的时序图："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19bcaf188d0>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19bc6ba5be0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "train.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 三.ARIMA部分"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1 平稳性"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* __平稳性检验__\n",
    "\n",
    "看一下自相关图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19bcb341550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(12,8))\n",
    "ax1 = fig.add_subplot(211)\n",
    "fig = sm.graphics.tsa.plot_acf(train, lags=40, ax=ax1)\n",
    "ax2 = fig.add_subplot(212)\n",
    "fig = sm.graphics.tsa.plot_pacf(train, lags=40, ax=ax2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* __单位根检验：__"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "原始序列的ADF检验结果为：  (-2.0999976514548866, 0.24451554586451846, 2, 50, {'1%': -3.5684858639999999, '5%': -2.92135992, '10%': -2.5986615999999998}, 333.13854054493197)\n"
     ]
    }
   ],
   "source": [
    "print('原始序列的ADF检验结果为： ', ADF(train['Gold price']))\n",
    "#返回值依次为adf,pvalue,nobs,critical values,icbest,regresults,resstore"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "单位根检验p值为0.2445，显然没有通过检验；而且两种自相关图都没有明显特征。所以综合来看原序列不平稳。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2 差分序列"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先对原序列做一阶差分,并且看看差分后的时序图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19bcb57ab70>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19bcb359208>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "D_train=train.diff().dropna()\n",
    "D_train.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "看上去还挺像平稳的，再看看两种自相关图"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19bcbaabcf8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(12,8))\n",
    "ax3 = fig.add_subplot(211)\n",
    "fig = sm.graphics.tsa.plot_acf(D_train, lags=40, ax=ax3)\n",
    "ax4 = fig.add_subplot(212)\n",
    "fig = sm.graphics.tsa.plot_pacf(D_train, lags=40, ax=ax4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "单位根检验："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "差分序列的ADF检验结果为：  (-4.9010024322722678, 3.4718012349130726e-05, 3, 48, {'1%': -3.5745892596209488, '5%': -2.9239543084490744, '10%': -2.6000391840277777}, 327.19717017824792)\n"
     ]
    }
   ],
   "source": [
    "print('差分序列的ADF检验结果为： ', ADF(D_train['Gold price']))\n",
    "#返回值依次为adf,pvalue,nobs,critical values,icbest,regresults,resstore"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "单位根检验p值过关，两种自相关图也符合要求，就认为差分后的序列是平稳了的吧！"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "还有一个ljungbox检验，好像主要是看序列是不是白噪声，如果是白噪声的话是没有研究意义的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "差分后序列的白噪声检验结果为：  (array([ 5.7236846]), array([ 0.01673757]))\n"
     ]
    }
   ],
   "source": [
    "print('差分后序列的白噪声检验结果为： ', acorr_ljungbox(D_train, lags=1))  #返回统计量和p值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "p值检验通过，看来不是白噪声序列，可以进行后续分析。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.3 模型定阶"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "模型定阶这一块我花了很多时间，因为自己感觉往上找的方法很多，而且判断标准不一，所以也想了很久。具体的做法我先看了一下两种自相关图，从自相关系数图来看，还是比较明显的，除了滞后1阶，其他都落在了置信区间内，所以直接定q=1或0；另一方面，偏自相关系数图就有三个地方超过置信区间内，所以大概有p=0,1,2,3,4可以考虑。这两个图还比较友好，可以比较方便的判断，之前找的一些数据在滞后8或9阶落在区间外的都有，所以再一次强调，选择的数据也挺关键的。\n",
    "\n",
    "接下来要决定具体的p和q值，但是我们显然无法从两种自相关图得到。在论文里，我采用了其他很多个指标，包括Adjusted-R，AIC，SC，RMSE，MAPE，除了Adjusted-R，其他的指标都是越小越好。在这个地方，eviews就方便了许多，通过这个软件我们可以迅速得到每一个q和p对应的统计假设检验的结果，可以更加全面的判断哪个阶更合适，而python还是要手动码代码计算每一个统计指标。所以，我直接采用在eviews里表现最好的模型，也就是p=4和q=1。当然，我也会把我当初用python写的定阶过程的代码贴出来，就当是作为记录吧，它是以AIC为评判标准，不过这显然没有eviews全面。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#一共用了两种方法写代码\n",
    "#方法一：\n",
    "#res = sm.tsa.stattools.arma_order_select_ic(D_train, ic=['aic']) \n",
    "#print(res.aic_min_order)\n",
    "#model = sm.tsa.ARMA(D_train, res.aic_min_order).fit(disp = 0)\n",
    "#方法二：\n",
    "#arma_mod11=sm.tsa.ARMA(D_train,(1,1)).fit()\n",
    "#print(arma_mod11.aic,arma_mod11.bic,arma_mod11.hqic)\n",
    "#arma_mod10=sm.tsa.ARMA(D_train,(1,0)).fit()\n",
    "#print(arma_mod10.aic,arma_mod10.bic,arma_mod10.hqic)\n",
    "#arma_mod01=sm.tsa.ARMA(D_train,(0,1)).fit()\n",
    "#print(arma_mod01.aic,arma_mod01.bic,arma_mod01.hqic)\n",
    "#......"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "拟合模型："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "arma_mod41=sm.tsa.ARMA(D_train,(4,1)).fit()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.4 模型的检验"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据正常的步骤，当然还是要对得到的模型进行检验啦(当初敲代码的时候，一直都在祈祷这些检验都能通过)。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* __显著性检验__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先看一下残差qq图："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtMAAAHjCAYAAADhZpMBAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzs3Xd41eX5x/H3g1o07ipWa5vgAMRR\nHHFWrda96x5xt4Kz4gIlCgoGREGxWqs46micPyxupRT3BlFxoDgIbsFVNMh8fn88RIYkOQk5+Wa8\nX9eV65zzPSfne3Ndevnx4X7uJ8QYkSRJklR3bbIuQJIkSWquDNOSJElSPRmmJUmSpHoyTEuSJEn1\nZJiWJEmS6skwLUmSJNWTYVqSJEmqJ8O0JEmSVE+GaUmSJKmelsy6gLpYddVVY/v27bMuQ5IkSS3c\nmDFjpsQY29X2uWYVptu3b8/o0aOzLkOSJEktXAihIpfP2eYhSZIk1ZNhWpIkSaonw7QkSZJUT4Zp\nSZIkqZ4M05IkSVI9GaYlSZKkejJMS5IkSfVkmJYkSZLqyTAtSZIk1ZNhWpIkSaonw7QkSZJUT4Zp\nSZIkqZ4M05IkSVI9GaYlSZKkejJMS5IkSfVkmJYkSVKLVF4O7dtDmzbpsby84e+xZMN/pSRJkpSt\n8nLo2hUqK9Prior0GqCkpOHu48q0JEmSWpzS0nlBukplZbrekAzTkiRJanEmTarb9foyTEuSJKnF\nKSys2/X6MkxLkiSpxSkrg4KCBa8VFKTrDckwLUmSpBanpASGDoWiIgghPQ4d2rCbD8FpHpIkSWqh\nSkoaPjwvzJVpSZIkqZ4M05IkSVI9GaYlSZKkejJMS5IkSfVkmJYkSZLqyTAtSZIk1ZNhWpIkSaon\nw7QkSZJUT4ZpSZIkqZ4M05IkSVI9GaYlSZKkejJMS5IkqWWaMwfKy2Hy5LzdwjAtSZKklueFF2Cb\nbeDII+H66/N2G8O0JEmSWo6PP04BeuutYdIkuPlmOPfcvN1uybx9syRJktRYKivhsstg4MDU3lFa\nmkL0csvl9baGaUmSJDVfMcIdd0DPnmlV+pBD4NJLoaioUW5vm4ckSZKap5deSn3RJSXwq1/B00/D\nXXc1WpAGw7QkSZKam08+gaOPhi23hIkT4Z//TMF6220bvRTbPCRJktQ8VFbCoEGpL3r2bOjVK/VF\n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\nGzz/PGy9ddaVSZIkKUNZ9Uw3D99/D5deCpddll737g09etgXLUmSJMAwvWhz5sC//pX6oj/9NK1K\nX3IJNPU515IkSWpUtnksrKp945hjYM01U5/07bcbpCVJkvQzhukqH32UJnNss016fsst8MIL6bUk\nSZK0CLZ5/PDDvL7oGOH886FnT1huuawrkyRJUhPXesP0nDmpfePcc+GTT9IphgMHQlHR/7d3/zGW\nlfUdx9+fBQtSLCIoWOVHi1QFAgsiBQkJCCpSs7QCQrNBEAzBtIKJpqVdgwZiAiXRhKK1i5IVs+WH\nVii2iFCEIm34zbILReyKsmyh5YeC0jUa4Ns/zhm5zM6dvXOYvffuzPuVTO65z33uOd/7nWdmvvPc\n554z6sgkSZK0iZifyzwmlm+ceCLsuCPceitcfrmFtCRJkmZkfhXTjz4Kixc3HzBcswaWLYM77oCD\nDx51ZJIkSdoEzY9lHuvWNWuizz+/Wd6xZEmzvMN10ZIkSXoF5nYxXQWXXdZ8oHDtWvjQh5qCetdd\nRx2ZJEmS5oC5W0w/9xy85z3N+uj99ms+bHjIIaOOSpIkSXPI3C2mt94a9toLTjutuQDLgvm1PFyS\nJEkb39wtpgEuvnjUEUiSJGkOc7pWkiRJ6shiWpIkSerIYlqSJEnqyGJakiRJ6mjOFtPLlzenk16w\noLldvnzUEUmSJGmumZNn81i+vDkj3rp1zf1HHmnuQ3M1cUmSJGk2zMmZ6SVLXiqkJ6xb17RLkiRJ\ns2VOFtNr1sysXZIkSepiThbTO+88s3ZJkiSpizlZTH/uc7DVVi9v22qrpl2SJEmaLXOymF68GJYu\nhV12gaS5XbrUDx9KkiRpds3Js3lAUzhbPEuSJGljmpMz05IkSdIwWExLkiRJHVlMS5IkSR1ZTEuS\nJEkdWUxLkiRJHVlMS5IkSR1ZTEuSJEkdWUxLkiRJHVlMS5IkSR1ZTEuSJEkdWUxLkiRJHVlMS5Ik\nSR1ZTEuSJEkdWUxLkiRJHVlMS5IkSR2lqkYdw8CSPAk8spEPsz3w1EY+xlxjzroxbzNnzroxbzNn\nzroxbzNnzroZRt52qarXb6jTJlVMD0OSu6pq/1HHsSkxZ92Yt5kzZ92Yt5kzZ92Yt5kzZ92MU95c\n5iFJkiR1ZDEtSZIkdWQxvb6low5gE2TOujFvM2fOujFvM2fOujFvM2fOuhmbvLlmWpIkSerImWlJ\n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\nOvp/g+SlJv76a5UAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19bcba9fb00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "residue=arma_mod41.resid\n",
    "fig=plt.figure(figsize=(12,8))\n",
    "ax5=fig.add_subplot(111)\n",
    "fig=qqplot(residue,line='q',ax=ax5,fit=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "再看一下残差的情况："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "            AC          Q  Prob(>Q)\n",
      "lag                                \n",
      "1.0   0.019502   0.020941  0.884939\n",
      "2.0   0.006765   0.023511  0.988313\n",
      "3.0  -0.034451   0.091525  0.992835\n",
      "4.0   0.000719   0.091555  0.998984\n",
      "5.0  -0.055992   0.278858  0.998022\n",
      "6.0   0.108753   1.000832  0.985581\n",
      "7.0  -0.167071   2.742581  0.907751\n",
      "8.0  -0.016312   2.759562  0.948529\n",
      "9.0  -0.113790   3.605102  0.935432\n",
      "10.0  0.105360   4.347262  0.930325\n",
      "11.0 -0.133625   5.570161  0.900452\n",
      "12.0 -0.042969   5.699772  0.930454\n",
      "13.0 -0.060733   5.965341  0.947405\n",
      "14.0 -0.074037   6.370394  0.956275\n",
      "15.0 -0.005946   6.373077  0.972777\n",
      "16.0 -0.110798   7.330622  0.966350\n",
      "17.0  0.064893   7.668472  0.973131\n",
      "18.0  0.070887   8.083474  0.977368\n",
      "19.0  0.006922   8.087552  0.985768\n",
      "20.0  0.058734   8.390266  0.988955\n",
      "21.0  0.081904   8.997902  0.989231\n",
      "22.0 -0.059598   9.330363  0.991428\n",
      "23.0  0.109731  10.496244  0.987765\n",
      "24.0 -0.029789  10.585235  0.991677\n",
      "25.0  0.052382  10.870595  0.993555\n",
      "26.0 -0.177279  14.264820  0.969344\n",
      "27.0  0.036774  14.416714  0.976844\n",
      "28.0 -0.002620  14.417517  0.983952\n",
      "29.0  0.045121  14.666080  0.987448\n",
      "30.0  0.080473  15.492644  0.986644\n",
      "31.0  0.024117  15.570415  0.990451\n",
      "32.0  0.008749  15.581161  0.993493\n",
      "33.0  0.109725  17.360498  0.988435\n",
      "34.0 -0.142158  20.513075  0.966951\n",
      "35.0 -0.041199  20.793439  0.972678\n",
      "36.0 -0.079099  21.891472  0.969078\n",
      "37.0 -0.099058  23.728381  0.955338\n",
      "38.0 -0.024315  23.846959  0.964501\n",
      "39.0  0.065460  24.772534  0.962877\n",
      "40.0 -0.016631  24.837255  0.971099\n"
     ]
    }
   ],
   "source": [
    "r,q,p = sm.tsa.acf(residue.values.squeeze(), qstat=True)\n",
    "n_data = np.c_[range(1,41), r[1:], q, p]\n",
    "table = pd.DataFrame(n_data, columns=['lag', \"AC\", \"Q\", \"Prob(>Q)\"])\n",
    "print(table.set_index('lag'))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最后是ljungbox检验："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "序列的白噪声检验结果为：  (array([ 0.02094129]), array([ 0.884939]))\n"
     ]
    }
   ],
   "source": [
    "print('序列的白噪声检验结果为： ', acorr_ljungbox(residue, lags=1))  #返回统计量和p值"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "ljungbox检验p值远大于0.1，再综合之前的两幅图，可以认为是白噪声序列了。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* __参数显著性检验__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这一块当时不太会用python做，所以之后用eviews来观察结果的，所以还是用eviews方便一点啊......"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.5 预测及差分还原"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这一步eviews上是直接帮你做了的，但是python需要手动还原，当初写的时候也是费了不少力，因为好像没有找到相关的python方法。\n",
    "\n",
    "与此同时，在这里我们是用动态预测的方法，即每次预测其实我们只是对下一期的值进行预测；之前我曾经尝试过静态预测，进行根据预测值来预测下一时期的值，但是效果很差，所以这里就只能进行一步预测，这也可以看出来实际问题中，时间序列的模型不是个可靠的方法。我在论文中对未来五个时期进行了一步预测并比较。\n",
    "\n",
    "还需要指出的是，从这里开始，预测的结果就与写论文时预测的结果不太一样了，因为论文中时间序列部分的预测我用的是eviews来完成的，所以拟合过程有一点点区别。不过我看了一下，最终预测的数据相差并没有很多，所以暂时就按python里的结果来吧，毕竟我们看的是过程！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "predict_ts = arma_mod41.predict()\n",
    "forecast_goldprice = arma_mod41.predict('2018-01-12', '2018-02-09', dynamic=True)\n",
    "train_array=train['Gold price']\n",
    "data_array=data['Gold price']\n",
    "L=len(predict_ts)\n",
    "K=len(forecast_goldprice)\n",
    "i=0\n",
    "t=1\n",
    "j=1\n",
    "while i<L:\n",
    "    predict_ts[i]=predict_ts[i]+train_array[i]\n",
    "    i=i+1\n",
    "forecast_goldprice[0]=data_array[-6]+forecast_goldprice[0]\n",
    "while j<K:\n",
    "    forecast_goldprice[j]=forecast_goldprice[j]+data_array[-6+j]\n",
    "    j=j+1"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.6 结果研究"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先看一下预测值与实际值的比较："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x19bcca96080>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x19bcca827f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "p1=pd.DataFrame({'data':test.ravel(),'predict':forecast_goldprice})\n",
    "p1.plot()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "模型的好坏我们用RMSE，MAPE来评价，先来看看ARIMA的结果："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "arima模型的rmse值为： 15.527624752270546\n"
     ]
    }
   ],
   "source": [
    "def rmse(x,pred):\n",
    "    if len(x)!=len(pred):\n",
    "        print('lenth not equal!')\n",
    "        exit(0)\n",
    "    error=[]\n",
    "    for i in range(len(x)):\n",
    "        error.append((x[i] - pred[i])**2)\n",
    "    val=sqrt(sum(error) / len(error))\n",
    "    return val\n",
    "print('arima模型的rmse值为：',rmse(test.ravel(),forecast_goldprice))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "arima模型的mape值为： 1.01763765917\n"
     ]
    }
   ],
   "source": [
    "def mape(x,pred):\n",
    "    if len(x)!=len(pred):\n",
    "        print('lenth not equal!')\n",
    "        exit(0)\n",
    "    error=[]\n",
    "    for i in range(len(x)):\n",
    "        error.append(abs((x[i] - pred[i])/x[i]))\n",
    "    val=sum(error)/len(error)\n",
    "    return val*100\n",
    "print('arima模型的mape值为：',mape(test.ravel(),forecast_goldprice))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 四. SVR部分"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.1 提取残差数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "接下来，在ARIMA模型的基础上，我们加入SVM模型使用组合预测的方法。也就是说，利用ARIMA模型提起数据线性信息，再利用SVM模型来提取非线性信息，进行一个综合。实际上在阅读文献的过程中，我发现大致有两种组合预测方法，一种是并联型，也就是给单一的方法加上权重，有点类似我上一篇写的ensemble models里的stacking；另一种方法是串联型，就是用另一个模型来研究单一模型的残差，从而对残差来预测。在论文中，我主要用到的是后一种方法。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "首先我们先得到ARIMA模型的残差序列。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "resid=np.array(train_array[1:])-np.array(predict_ts)\n",
    "res_train=resid.copy()\n",
    "resid_forecast=test.ravel()-np.array(forecast_goldprice)\n",
    "#resid"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.2 SVR残差定阶"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于ARIMA模型的残差，我们希望通过SVR模型来对它进行预测，但是首先，我们需要知道到底过去几个时期的残差会对下一个时期的残差产生影响，这个过程就相当于ARIMA模型的定阶过程。但是，我们并不像时间序列模型那样有很多统计量可以参考，所以就根据利用不同阶进行预测的效果来进行比较。具体的步骤我在论文中已经写了，因此直接摘录如下：\n",
    "\n",
    "Step1 由于数据量较大，为方便计算，仅考虑10阶以内的情况，选定阶数k(k=1,2,…10)。       \n",
    "Step2 从起始时间开始按顺序每次取k个按时间顺序排列的残差数据，并依次排列下来，将     \n",
    "排列好的矩阵作为SVM模型的输入，每次取数据时的第k+1个数据作为模型的输出，并保留误差。     \n",
    "Step3 利用交叉验证的方法，随机取80%的数据作为模型的训练集，剩余数据作为测试集，      \n",
    "利用SVR模型训练后对测试集的结果进行预测。     \n",
    "Step4 在选定阶数为k的情况下，记RMSE(k)为利用SVM模型对测试集预测后与真实残差数据的均方误差，若RMSE(k)小于RMSE(k+1),则停止循环并输出模型阶数k；反之，则继续增加阶数。\n",
    "\n",
    "另外，在这里小小吐槽一下，有几篇关于SVR残差定阶过程的论文它们的文字描述都是几乎一样的，而且讲得也不详细，还是一些博客有用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The best order is: 3\n"
     ]
    }
   ],
   "source": [
    "def OrderSelect(train):\n",
    "    rbf_svr=SVR(kernel='rbf')\n",
    "    temp=10000\n",
    "    m=len(train)\n",
    "    #data=pd.to_numeric(data['resid'], errors='coerce')\n",
    "    #svr_data=np.array(data)\n",
    "    for i in np.arange(2,10): \n",
    "        X=np.zeros((m-i,i))\n",
    "        Y=np.zeros((m-i,1))\n",
    "        for j in np.arange(i):\n",
    "            X[:,j]=train[j:j+m-i]\n",
    "        Y=train[i:]\n",
    "        X_train,X_test,Y_train,Y_test=train_test_split(X,Y,random_state=33,test_size=0.2)\n",
    "        rbf_svr.fit(X_train,Y_train)\n",
    "        pred=rbf_svr.predict(X_test)\n",
    "        error=Y_test-pred\n",
    "        mse=np.sum(error*error)/len(error)\n",
    "        if temp>mse:\n",
    "            temp=mse\n",
    "        else:\n",
    "            n=i\n",
    "            break\n",
    "    return n\n",
    "\n",
    "n=OrderSelect(res_train)\n",
    "print('The best order is:',n)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最后确定的阶数为3，也就是说每个残差值会受到前面3项的影响。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.3 参数寻优"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "对于SVR模型，参数也是非常重要的。在整个寻优过程中，我将使用两种方法，一种是网格搜索，这是我在论文中使用的方法，但是我在确定寻优区间时碰到的问题很棘手，当我把区间调大时每次得到的结果都会造成过拟合，也就是在对未来五个值预测时效果很明显的不好，最后就直接选择了‘合适’的区间来寻优(在这里有一点小小的‘作弊’,也是为了应付论文不想再推倒重来找其他数据了)；另一种方法是我在上一篇notebook中使用的方法，也就是BayesianOptimization，由于这是我后来才发现的好方法，所以没有在写论文的过程中尝试它，非常可惜，所以在这里特地来弥补一下遗憾。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* __网格寻优__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "先把训练集和测试集准备好。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# 数据准备\n",
    "resid1=np.concatenate((resid,resid_forecast),axis=0)\n",
    "n=len(resid1)\n",
    "X=np.zeros((n-3,3))\n",
    "Y=np.zeros((n-3,1))\n",
    "rbf_svr=SVR(kernel='rbf')\n",
    "for j in np.arange(3):\n",
    "    X[:,j]=resid1[j:j+n-3]\n",
    "Y=resid1[3:]\n",
    "Y=Y.reshape(-1,1)\n",
    "ss_X=StandardScaler()\n",
    "ss_Y=StandardScaler()\n",
    "X = ss_X.fit_transform(X)\n",
    "Y = ss_Y.fit_transform(Y)\n",
    "Y=Y.ravel()\n",
    "X_train=X[:n-8]\n",
    "Y_train=Y[:n-8]\n",
    "X_test=X[-5:]\n",
    "Y_test=Y[-5:]\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "寻优过程我当初做得很繁琐，现在简化如下："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Fitting 5 folds for each of 10000 candidates, totalling 50000 fits\n",
      "{'C': 1.0, 'gamma': 0.01}\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "[Parallel(n_jobs=1)]: Done 50000 out of 50000 | elapsed:  1.7min finished\n"
     ]
    }
   ],
   "source": [
    "# 开始寻优\n",
    "C_range = np.logspace(0,2,100)\n",
    "gamma_range = np.logspace(-2,0,100)\n",
    "#C_range = np.arange(25,30)\n",
    "#gamma_range = np.arange(0.2,1,0.1)\n",
    "param_grid = dict(gamma=gamma_range, C=C_range)\n",
    "grid = GridSearchCV(rbf_svr, param_grid=param_grid,scoring='neg_mean_squared_error',cv=5,verbose=1)\n",
    "grid.fit(X_train,Y_train)\n",
    "print(grid.best_params_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "偷偷测试一下结果："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.59916403316 2.62346158664\n"
     ]
    }
   ],
   "source": [
    "#pred1=grid.predict(X)\n",
    "pred=grid.predict(X_test)\n",
    "aaa=np.linalg.norm(Y_test-pred,ord=2)\n",
    "bbb=np.linalg.norm(Y_test,ord=2)\n",
    "print(aaa,bbb)\n",
    "#拟合预测\n",
    "#rbf_svr.fit(X_train,Y_train)\n",
    "#pred=rbf_svr.predict(X_test)\n",
    "#pred1=rbf_svr.predict(X)\n",
    "#error=Y_test-pred\n",
    "#mse=np.sum(error*error)/len(error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "其实当初在寻优的过程中，我对两个参数寻优范围的确定十分头疼，因为有试过好几个区间，发现如果把寻优范围设置得过大会使得模型拟合的效果不太理想(当然在这里我也‘作弊’了，将预测结果与实际的数据进行了对比)，不理想的结果是每一次的预测值绝对值都特别小，。所以我也是尝试了好几次才在论文里定了C∈[25,100],γ∈[0.2,1]的范围，在实际问题中这么做肯定是有问题的。\n",
    "\n",
    "在寻优过程中，还有一点收获就是还是要进行归一化或者标准化的，因为不过不做就可能会造成预测值几乎是常数的问题，这个问题当初也困扰了我挺久。但是，在标准化后我还是遇到预测值为常数的问题，这个问题我到现在也没想到解决办法，可能是参数的设置范围太大导致的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* __贝叶斯寻优__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "具体寻优原理和过程已经在上一篇notebook中介绍过了，这里只贴出代码和结果，可以注意到的是，其实贝叶斯寻优与网格寻优算法差不多，但是却快很多，在我看来确实是个节约时间的好办法。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "collapsed": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\u001b[31mInitialization\u001b[0m\n",
      "\u001b[94m-----------------------------------------------------------------\u001b[0m\n",
      " Step |   Time |      Value |         C |   epsilon |     gamma | \n",
      "    1 | 00m00s | \u001b[35m  -1.02509\u001b[0m | \u001b[32m  19.7946\u001b[0m | \u001b[32m   0.0551\u001b[0m | \u001b[32m   5.1273\u001b[0m | \n",
      "    2 | 00m00s | \u001b[35m  -0.98895\u001b[0m | \u001b[32m  99.5772\u001b[0m | \u001b[32m   0.0442\u001b[0m | \u001b[32m   7.2926\u001b[0m | \n",
      "    3 | 00m00s | \u001b[35m  -0.97875\u001b[0m | \u001b[32m  88.7929\u001b[0m | \u001b[32m   0.0968\u001b[0m | \u001b[32m   9.9104\u001b[0m | \n",
      "    4 | 00m00s |   -0.98607 |    2.5266 |    0.0941 |    7.5532 | \n",
      "    5 | 00m00s |   -1.01689 |   99.4064 |    0.0751 |    5.3635 | \n",
      "\u001b[31mBayesian Optimization\u001b[0m\n",
      "\u001b[94m-----------------------------------------------------------------\u001b[0m\n",
      " Step |   Time |      Value |         C |   epsilon |     gamma | \n",
      "    6 | 00m04s |   -0.97939 |   12.3915 |    0.0100 |   10.0000 | \n",
      "    7 | 00m04s | \u001b[35m  -0.97871\u001b[0m | \u001b[32m  99.9464\u001b[0m | \u001b[32m   0.0632\u001b[0m | \u001b[32m   9.9871\u001b[0m | \n",
      "    8 | 00m05s |   -0.98822 |    0.1000 |    0.1000 |   10.0000 | \n",
      "    9 | 00m05s |   -0.97939 |   58.4095 |    0.0100 |   10.0000 | \n",
      "   10 | 00m04s |   -0.97917 |   72.2641 |    0.0250 |    9.9999 | \n",
      "   11 | 00m04s |   -0.97900 |   39.7096 |    0.0378 |    9.9975 | \n",
      "   12 | 00m09s | \u001b[35m  -0.97862\u001b[0m | \u001b[32m  99.8147\u001b[0m | \u001b[32m   0.0861\u001b[0m | \u001b[32m   9.9989\u001b[0m | \n",
      "   13 | 00m08s |   -0.97904 |   99.8627 |    0.0372 |    9.9788 | \n",
      "   14 | 00m08s |   -0.97939 |   82.1973 |    0.0100 |   10.0000 | \n",
      "   15 | 00m10s |   -0.97882 |    0.1570 |    0.0100 |   10.0000 | \n",
      "   16 | 00m09s |   -0.97862 |  100.0000 |    0.1000 |   10.0000 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([ -6.06975130e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 47, 'nit': 5, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n",
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([  2.61083777e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 48, 'nit': 4, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   17 | 00m11s |   -0.97872 |   99.9535 |    0.0623 |    9.9873 | \n",
      "   18 | 00m11s |   -0.97939 |   80.6770 |    0.0100 |   10.0000 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([  4.66128910e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 50, 'nit': 4, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   19 | 00m13s |   -0.98822 |    0.1000 |    0.1000 |   10.0000 | \n",
      "   20 | 00m09s |   -0.97939 |   50.9965 |    0.0100 |   10.0000 | \n",
      "   21 | 00m14s |   -0.97862 |  100.0000 |    0.1000 |   10.0000 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([ -1.54626177e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 54, 'nit': 5, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   22 | 00m11s |   -0.97939 |   80.4799 |    0.0100 |   10.0000 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([ -3.31781262e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 49, 'nit': 5, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n",
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([  1.58732905e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 45, 'nit': 3, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   23 | 00m12s |   -0.97939 |  100.0000 |    0.0100 |   10.0000 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([  1.33501017e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 46, 'nit': 4, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   24 | 00m13s |   -0.97870 |   99.9983 |    0.0626 |    9.9981 | \n",
      "   25 | 00m13s |   -0.97862 |   71.6323 |    0.1000 |   10.0000 | \n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\python\\Anaconda3\\lib\\site-packages\\sklearn\\gaussian_process\\gpr.py:457: UserWarning: fmin_l_bfgs_b terminated abnormally with the  state: {'grad': array([  1.64932135e-05]), 'task': b'ABNORMAL_TERMINATION_IN_LNSRCH', 'funcalls': 52, 'nit': 6, 'warnflag': 2}\n",
      "  \" state: %s\" % convergence_dict)\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Final Results\n",
      "SVR: -0.978623\n",
      "{'C': 99.814734399585703, 'gamma': 9.9988546145404502, 'epsilon': 0.086138750085436089}\n"
     ]
    }
   ],
   "source": [
    "def svrcv(C, gamma,epsilon):\n",
    "    val = cross_val_score(SVR(C=C, gamma=gamma, epsilon=epsilon), X_train, Y_train, 'neg_mean_squared_error', cv=5).mean()\n",
    "    return val\n",
    "\n",
    "if __name__ == \"__main__\":\n",
    "    gp_params = {\"alpha\": 1e-5}\n",
    "\n",
    "    svrBO = BayesianOptimization(svrcv,\n",
    "        {'C': (0.1, 100), 'gamma': (0.01, 10), 'epsilon': (0.01,0.1)})\n",
    "    #svcBO.explore({'C': [0.001, 0.01, 0.1], 'gamma': [0.001, 0.01, 0.1]}, 'epsilon':[])\n",
    "\n",
    "    svrBO.maximize(n_iter=20, **gp_params)\n",
    "\n",
    "    print('Final Results')\n",
    "    print('SVR: %f' % svrBO.res['max']['max_val'])\n",
    "    print(svrBO.res['max']['max_params'])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "再偷偷测试一下结果如下，看上去效果差了一点，其实也是需要一些运气的，因为数据量和维度都十分小而且每次寻优结果都不一样。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2.65454680574 2.62346158664\n"
     ]
    }
   ],
   "source": [
    "svr=SVR(C=99.814734,epsilon= 0.086,gamma=9.9988546)\n",
    "svr.fit(X_train,Y_train)\n",
    "pred=svr.predict(X_test)\n",
    "ccc=np.linalg.norm(Y_test-pred,ord=2)\n",
    "print(ccc,bbb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 4.4 组合预测的结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最后的步骤就是把预测的残差再代回去来作为最终预测结果，由于整个过程比较简单，所以求解过程就省略了......"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "综合看了一下整个过程，的确没有做到理想的结果，但是却给我的研究提供了不错的思路。并联式的组合预测方法确实是个不错的思想，但是受限于本篇文章中的数据量太小，而且仅仅是依靠过去的数据值来进行预测，所以整个预测和调参过程有着一种‘随缘’的思想。写下这篇notebook也是为了记录下自己毕业论文的写作过程和思路，也希望没有浪费自己那么多时间来写代码预测和调参吧!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
